[리트코드] 1.TwoSum


문제 주소

nums 배열에서 각각의 index를 더한 값이 target이 되는 값을 찾는 문제 https://leetcode.com/problems/two-sum/

My Solution

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        nums_map = {}
        for i, num in enumerate(nums):
            nums_map[num] = i

        for i, num in enumerate(nums):
            if target - num in nums_map and i != nums_map[target - num]:
                return nums.index(num), nums_map[target - num]

풀이 방법

enumerate을 이용해 키와 값을 서로 바꿔 dict에 저장하고, target - num을 한 값이 nums_map 키에 있으면 return 하는 구조이다.
해시 테이블로 풀 시 O(1)이라는 시간 복잡도를 기대할 수 있기 때문에 매우 빠르다.


위로 올라가기💨

Hello, I'm@nickhealthy
개발자를 꿈꾸고, 파이썬과 클라우드에 관심이 많은 비전공자

Github